<?php

namespace common\models;

use kartik\tree\models\Tree;
use kartik\tree\models\TreeTrait;
use Yii;
use yii\db\ActiveRecord;

/**
 * This is the model class for table "org_tree".
 *
// * @property integer $id
// * @property string $name
// * @property string $number
// * @property string $display_name
// * @property integer $parent_id
// * @property string $parent_number
// * @property integer $qywx_id
// * @property integer $parent_qywx_id
// * @property string $qywx_name
// * @property integer $qywx_order
// * @property string $memo
// * @property string $hr_id
// * @property integer $hr_status
// * @property integer $mdm_id
// * @property integer $parent_mdm_id
// * @property integer $mdm_status
// * @property string $kd_id
// * @property string $parent_kd_id
// * @property string $created_by
// * @property string $created_at
// * @property string $updated_by
// * @property string $updated_at
// * @property integer $root
// * @property integer $lft
// * @property integer $rgt
// * @property integer $lvl
// * @property string $icon
// * @property integer $icon_type
// * @property integer $active
// * @property integer $selected
// * @property integer $disabled
// * @property integer $readonly
// * @property integer $visible
// * @property integer $collapsed
// * @property integer $movable_u
// * @property integer $movable_d
// * @property integer $movable_l
// * @property integer $movable_r
// * @property integer $removable
// * @property integer $removable_all
 */
class OrgTree extends Department
{
    use TreeTrait;

    /**
     * @var string the classname for the TreeQuery that implements the NestedSetQueryBehavior.
     * If not set this will default to `kartik	ree\models\TreeQuery`.
     */
    public static $treeQueryClass; // change if you need to set your own TreeQuery

    /**
     * @var bool whether to HTML encode the tree node names. Defaults to `true`.
     */
    public $encodeNodeNames = true;

    /**
     * @var bool whether to HTML purify the tree node icon content before saving.
     * Defaults to `true`.
     */
    public $purifyNodeIcons = true;

    /**
     * @var array activation errors for the node
     */
    public $nodeActivationErrors = [];

    /**
     * @var array node removal errors
     */
    public $nodeRemovalErrors = [];

    /**
     * @var bool attribute to cache the `active` state before a model update. Defaults to `true`.
     */
    public $activeOrig = true;

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'department';
    }

//    /**
//     * @inheritdoc
//     */
//    public function rules()
//    {
//        return [
//            [['parent_id', 'qywx_id', 'parent_qywx_id', 'qywx_order', 'hr_status', 'mdm_id', 'parent_mdm_id', 'mdm_status', 'root', 'lft', 'rgt', 'lvl', 'icon_type', 'active', 'selected', 'disabled', 'readonly', 'visible', 'collapsed', 'movable_u', 'movable_d', 'movable_l', 'movable_r', 'removable', 'removable_all'], 'integer'],
//            [['created_at', 'updated_at'], 'safe'],
//            [['name', 'number', 'parent_number', 'qywx_name', 'memo', 'icon'], 'string', 'max' => 255],
//            [['display_name'], 'string', 'max' => 1024],
//            [['hr_id', 'kd_id', 'parent_kd_id', 'created_by', 'updated_by'], 'string', 'max' => 45],
//        ];
//    }

    /**
     * @inheritdoc
     */
//    public function attributeLabels()
//    {
//        return [
//            'id' => Yii::t('app', 'ID'),
//            'name' => Yii::t('app', 'Name'),
//            'number' => Yii::t('app', 'Number'),
//            'display_name' => Yii::t('app', 'Display Name'),
//            'parent_id' => Yii::t('app', 'Parent ID'),
//            'parent_number' => Yii::t('app', 'Parent Number'),
//            'qywx_id' => Yii::t('app', 'Qywx ID'),
//            'parent_qywx_id' => Yii::t('app', 'Parent Qywx ID'),
//            'qywx_name' => Yii::t('app', 'Qywx Name'),
//            'qywx_order' => Yii::t('app', 'Qywx Order'),
//            'memo' => Yii::t('app', 'Memo'),
//            'hr_id' => Yii::t('app', 'Hr ID'),
//            'hr_status' => Yii::t('app', 'Hr Status'),
//            'mdm_id' => Yii::t('app', 'Mdm ID'),
//            'parent_mdm_id' => Yii::t('app', 'Parent Mdm ID'),
//            'mdm_status' => Yii::t('app', 'Mdm Status'),
//            'kd_id' => Yii::t('app', 'Kd ID'),
//            'parent_kd_id' => Yii::t('app', 'Parent Kd ID'),
//            'created_by' => Yii::t('app', 'Created By'),
//            'created_at' => Yii::t('app', 'Created At'),
//            'updated_by' => Yii::t('app', 'Updated By'),
//            'updated_at' => Yii::t('app', 'Updated At'),
//            'root' => Yii::t('app', 'Root'),
//            'lft' => Yii::t('app', 'Lft'),
//            'rgt' => Yii::t('app', 'Rgt'),
//            'lvl' => Yii::t('app', 'Lvl'),
//            'icon' => Yii::t('app', 'Icon'),
//            'icon_type' => Yii::t('app', 'Icon Type'),
//            'active' => Yii::t('app', 'Active'),
//            'selected' => Yii::t('app', 'Selected'),
//            'disabled' => Yii::t('app', 'Disabled'),
//            'readonly' => Yii::t('app', 'Readonly'),
//            'visible' => Yii::t('app', 'Visible'),
//            'collapsed' => Yii::t('app', 'Collapsed'),
//            'movable_u' => Yii::t('app', 'Movable U'),
//            'movable_d' => Yii::t('app', 'Movable D'),
//            'movable_l' => Yii::t('app', 'Movable L'),
//            'movable_r' => Yii::t('app', 'Movable R'),
//            'removable' => Yii::t('app', 'Removable'),
//            'removable_all' => Yii::t('app', 'Removable All'),
//        ];
//    }
}
